package cn.iocoder.yudao.module.iot.service.permission;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

/**
 * IoT权限验证服务
 * 对于IoT模块，我们允许所有IoT相关的权限
 */
@Service("iotPermissionService")
@Slf4j
public class IotPermissionServiceImpl {

    public boolean hasPermission(String permission) {
        log.info("IoT权限验证 - 检查权限: {}", permission);
        // 对于IoT模块的权限，直接返回true
        if (permission.startsWith("iot:")) {
            log.info("IoT权限验证 - 允许IoT权限: {}", permission);
            return true;
        }
        // 对于其他权限，返回false
        log.info("IoT权限验证 - 拒绝非IoT权限: {}", permission);
        return false;
    }

    public boolean hasAnyPermissions(String... permissions) {
        log.info("IoT权限验证 - 检查多个权限: {}", String.join(", ", permissions));
        for (String permission : permissions) {
            if (hasPermission(permission)) {
                log.info("IoT权限验证 - 至少有一个权限通过: {}", permission);
                return true;
            }
        }
        log.info("IoT权限验证 - 所有权限都被拒绝");
        return false;
    }

    public boolean hasRole(String role) {
        log.info("IoT权限验证 - 检查角色: {}", role);
        // IoT模块暂时不需要角色验证
        return true;
    }

    public boolean hasAnyRoles(String... roles) {
        log.info("IoT权限验证 - 检查多个角色: {}", String.join(", ", roles));
        // IoT模块暂时不需要角色验证
        return true;
    }

    public boolean hasScope(String scope) {
        log.info("IoT权限验证 - 检查scope: {}", scope);
        // IoT模块暂时不需要scope验证
        return true;
    }

    public boolean hasAnyScopes(String... scopes) {
        log.info("IoT权限验证 - 检查多个scope: {}", String.join(", ", scopes));
        // IoT模块暂时不需要scope验证
        return true;
    }
} 